In the design of communications systems, there is generally a compromise between bit error rate (BER) and transmission bit rate. Higher bit rates tend to have higher BERs. Forward error correction (FEC) is often used to detect and correct symbols of a data packet received in error without requiring retransmission. FEC coding adds redundancy to a message by encoding such a message prior to transmission. For FEC, some example error correction codes include Hamming, Bose-Chaudhuri-Hochquenghem (BCH), Reed-Solomon (RS), Viterbi, trellis, etc.